#include "DoubleLinkList.h"
#include <stdexcept>  // 用于异常处理

// 构造函数
DoubleLinkList::DoubleLinkList() {
    // 初始化链表
}

// 析构函数
DoubleLinkList::~DoubleLinkList() {
    // 清理链表资源
}

// 返回链表的大小
int DoubleLinkList::Size() const {
    // 返回链表当前大小
    return 0;  // 返回当前链表大小
}

// 判断链表是否为空
bool DoubleLinkList::Empty() const {
    // 判断链表是否为空
    return false;  // 如果为空返回 true，否则返回 false
}

// 向链表前端插入元素
void DoubleLinkList::PushFront(int value) {
    // 在链表头部插入一个新元素
}

// 向链表尾部插入元素
void DoubleLinkList::PushBack(int value) {
    // 在链表尾部插入一个新元素
}

// 删除链表头部元素
void DoubleLinkList::PopFront() {
    // 删除链表头部元素
}

// 删除链表尾部元素
void DoubleLinkList::PopBack() {
    // 删除链表尾部元素
}

// 在指定位置插入元素
void DoubleLinkList::Insert(int pos, int value) {
    // 在指定位置插入元素，pos 从 1 开始
}

// 删除第一个匹配的元素
void DoubleLinkList::Remove(int value) {
    // 删除链表中第一个匹配的值
}

// 删除所有匹配的元素
void DoubleLinkList::RemoveAll(int value) {
    // 删除链表中所有匹配的值
}

// 获取指定位置的元素
int DoubleLinkList::Get(int pos) const {
    // 获取指定位置的元素，pos 从 1 开始
    return 0;  // 返回位置的元素
}

// 设置指定位置的元素
void DoubleLinkList::Set(int pos, int value) {
    // 设置指定位置的元素的值
}

// 查找链表中是否包含指定值
bool DoubleLinkList::Find(int value) const {
    // 查找链表中是否包含指定的值
    return false;  // 如果包含返回 true，否则返回 false
}

// 清空链表
void DoubleLinkList::Clear() {
    // 清空链表中的所有元素
}

/*下面两个打印的函数，GTest框架是测试不了的，可自行调用打印观察*/
// 打印链表（从头到尾）
void DoubleLinkList::PrintForward() const {
    // 从头到尾打印链表
}

// 打印链表（从尾到头）
void DoubleLinkList::PrintBackward() const {
    // 从尾到头打印链表
}

